import { defineStore } from 'pinia'
import { ref } from 'vue'
import { userGetInfoService } from '@/api/user'
// 该文件存放的是用户模块
// 仓库名的规范 use开头 Store结尾 中间是仓库名
export const useUserStore = defineStore('big-user', () => {
  // token 登录时的唯一标识
  const token = ref('')
  // 登录
  const setToken = (newToken) => {
    token.value = newToken
  }
  // 退出
  const removeToken = () => {
    token.value = ''
  }
  // 定义用户信息 将来获取用户信息存下来
  const user = ref({})
  // 定义获取方法 将获取到的数据 存入到仓库中
  const getUser = async () => {
    const res = await userGetInfoService() // 请求获取数据
    user.value = res.data.data
  }
  // 设置用户信息
  const setUser = (obj) => {
    user.value = obj
  }
  // 暴漏出去user模块
  return { token, setToken, removeToken, user, getUser, setUser }
}, {
  // 将整个 user 模块 持久化
  persist: true,
})
